#include "Connection.hpp"

#include<mymuduo/Logger.h>

using namespace std;

Connection::Connection()
{
	//
	_conn = mysql_init(nullptr);
}

Connection::~Connection()
{
	//
	if (_conn != nullptr)
		mysql_close(_conn);
}

bool Connection::connect(string ip, unsigned short port, 
	string username, string password, string dbname)
{
	//建立连接
	MYSQL *p = mysql_real_connect(_conn, ip.c_str(), username.c_str(),
		password.c_str(), dbname.c_str(), port, nullptr, 0);

	if(p == nullptr){
		LOG_FATAL("mysql connection 建立失败");
	}
	return p == nullptr;
}

bool Connection::update(const char* sql)
{
	// insert/delete/update
	if (mysql_query(_conn, sql))
	{	
		LOG_ERROR(("更新失败！"));
		return false;
	}
	return true;
}

MYSQL_RES* Connection::query(const char* sql)
{
	//  select
	if (mysql_query(_conn, sql))
	{
		LOG_ERROR(("查询失败！"));
		return nullptr;
	}
	return mysql_use_result(_conn);
}

int Connection::getInsertId(){
	return mysql_insert_id(_conn);
}